package com.rc.evcharger.notify;

import com.rc.evcharger.vo.charge.CommandStartReq;
import com.rc.evcharger.vo.charge.CommandStopReq;

/**
 * 将各种回调信息推送到MQ,由各公众号负责监听
 * Create by Yang on 2018/12/20
 */
public interface CommandNotifyService {
    //6.5 notification_start_charge_result  （开始充电时发送）
    //6.7 notification_equip_charge_status （充电期间发送）
    //6.9 notification_stop_charge_result （结束充电时发送）
    //6.10 notification_charge_order_info（结束充电时发送,需要反复推送，直到对方确认为止）

    /**
     * 当设备状态发生变化时，推送最新的状态到合作方。
     *
     * @param gunNum 跟文档的中入参不一样
     * @return
     */
    int notification_stationsStatus(String gunNum);

    /**
     * 异步通知 notification_start_charge_result
     * 比如启动充电，是异步的接口，先回个启动状态是1的返回，然后再发枪命令下达之后，发我们一个启动状态是2的
     *
     * @param commandStartReq
     * @return
     */
    int notification_start_charge_result(CommandStartReq commandStartReq);

    /**
     * 充电期间发送, 当开始充电后，就开始推送
     * 推送频率10分钟，不需确认
     *
     * @param startChargeSeq
     * @return
     */
    int notification_equip_charge_status(String startChargeSeq, String platformPrefix);

    /**
     * 我们点了停止,也是你们给我们一个停止回调 和一个账单回调
     *
     * @param commandStopReq
     * @return
     */
    int notification_stop_charge_result(CommandStopReq commandStopReq);

    /**
     * 充电订单推送，需要反复推送，直到对方确认为止, 推送时机是结束后推
     *
     * @param orderNum
     * @return
     */
    int notification_charge_order_info(String orderNum);

}
